.\" Copyright (c) 1993 Michael Haardt
.\" (michael@moria.de),
.\" Fri Apr  2 11:32:09 MET DST 1993
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\" Modified 1993-07-22 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1993-08-10 by Alan Cox <iiitac@pyramid.swansea.ac.uk>
.\" Modified 1998-11-04 by Tigran Aivazian <tigran@sco.com>
.\" Modified 2004-05-27, 2004-06-17, 2004-06-23 by Michael Kerrisk
.\"
.TH acct 2 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
acct \- switch process accounting on or off
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <unistd.h>
.P
.BI "int acct(const char *_Nullable " filename );
.fi
.P
.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.RE
.P
.BR acct ():
.nf
    Since glibc 2.21:
.\"		commit 266865c0e7b79d4196e2cc393693463f03c90bd8
        _DEFAULT_SOURCE
    In glibc 2.19 and 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Up to and including glibc 2.19:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
.fi
.SH DESCRIPTION
The
.BR acct ()
system call enables or disables process accounting.
If called with the name of an existing file as its argument,
accounting is turned on,
and records for each terminating process are appended to
.I filename
as it terminates.
An argument of NULL causes accounting to be turned off.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EACCES
Write permission is denied for the specified file,
or search permission is denied for one of the directories
in the path prefix of
.I filename
(see also
.BR path_resolution (7)),
or
.I filename
is not a regular file.
.TP
.B EFAULT
.I filename
points outside your accessible address space.
.TP
.B EIO
Error writing to the file
.IR filename .
.TP
.B EISDIR
.I filename
is a directory.
.TP
.B ELOOP
Too many symbolic links were encountered in resolving
.IR filename .
.TP
.B ENAMETOOLONG
.I filename
was too long.
.TP
.B ENFILE
The system-wide limit on the total number of open files has been reached.
.TP
.B ENOENT
The specified file does not exist.
.TP
.B ENOMEM
Out of memory.
.TP
.B ENOSYS
BSD process accounting has not been enabled when the operating system
kernel was compiled.
The kernel configuration parameter controlling this feature is
.BR CONFIG_BSD_PROCESS_ACCT .
.TP
.B ENOTDIR
A component used as a directory in
.I filename
is not in fact a directory.
.TP
.B EPERM
The calling process has insufficient privilege to enable process accounting.
On Linux, the
.B CAP_SYS_PACCT
capability is required.
.TP
.B EROFS
.I filename
refers to a file on a read-only filesystem.
.TP
.B EUSERS
There are no more free file structures or we ran out of memory.
.SH STANDARDS
None.
.SH HISTORY
SVr4, 4.3BSD.
.\" SVr4 documents an EBUSY error condition, but no EISDIR or ENOSYS.
.\" Also AIX and HP-UX document EBUSY (attempt is made
.\" to enable accounting when it is already enabled), as does Solaris
.\" (attempt is made to enable accounting using the same file that is
.\" currently being used).
.SH NOTES
No accounting is produced for programs running when a system crash occurs.
In particular, nonterminating processes are never accounted for.
.P
The structure of the records written to the accounting file is described in
.BR acct (5).
.SH SEE ALSO
.BR acct (5)
